package Mateusz_Flieger;


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Nozdi
 */
public class Macierz {
    private int x;
    private int y;
    private liczba_zespolona [][] macierz;  
    
    
    public Macierz(int x, int y){
        this.x=x;
        this.y=y;
        macierz = new liczba_zespolona[x][y];
        //Powyżej masz same referencje
        for(int i=0;i<x;++i)
        	for(int j=0;j<y;++j)
        		macierz[i][j]= new liczba_zespolona(0, 0);
    }
    
    public  Macierz(Macierz a){
        x=a.x;
        y=a.y;
        macierz = new liczba_zespolona[x][y]; 
        
        for(int i=0;i<x;++i)
        	for(int j=0;j<y;++j)
        		macierz[i][j]= new liczba_zespolona(a.macierz[i][j]);
    }
    public  Macierz pobierz() {
        System.out.println("Yo, yo podaj wymiary tej macierzy");
        double a = 0, b = 0;
        liczba_zespolona ko = new liczba_zespolona(a, b);
        Scanner sc = new Scanner(System.in);
        int _x = (sc.nextInt());
        int _y = (sc.nextInt());
        Macierz s = new Macierz(_x, _y); 
        for(int i=0; i<_x; i++){
            for(int j=0; j<_y; j++){
               s.macierz[i][j] = ko.rand();
            }
        }
        return s;
    }
   
    public void wypisz(Macierz a){
        double c=0, b=0;
        liczba_zespolona ko = new liczba_zespolona(c, b);
        for(int i=0; i<a.x; i++){
            for(int j=0; j<a.y; j++){
                ko.jakaliczba(a.macierz[i][j]);
                System.out.print(" ");
            }
            System.out.print("\n");
        }
    }
    
    public void suma(Macierz a, Macierz b){
        double c=0, d=0;
        liczba_zespolona ko = new liczba_zespolona(c, d);
        if(a.x==b.x && a.y==b.y){
            Macierz dod = new Macierz(a.x, a.y);
            for(int i=0; i<x; i++){
                for(int j=0; j<y; j++){
                    ko.jakaliczba(ko.dodawnie(a.macierz[i][j],b.macierz[i][j]));
                }
                System.out.println("");
            }
        }
        else {System.out.println("Tych macierzy nie mozesz dodac");
        }
    }
    
    public void iloczyn(Macierz a, Macierz b){
        double c=0, d=0;
        liczba_zespolona ko = new liczba_zespolona(c,d);
        List<liczba_zespolona>tablica = new ArrayList<liczba_zespolona>();
        if(a.y==b.x){
            int w, k;
            w=a.x;
            k=b.y;
            Macierz ilo = new Macierz(w,k);
            for(int i=0; i<w; i++){
                for(int j=0; j<k; j++){
                        for(int p=0; p<a.y;p++){
                                tablica.add(ko.mnozenie(a.macierz[i][p],b.macierz[p][j]));}
                 
                        for (int l=0; l<tablica.size(); l++) {
						if (l!=0) {
							ilo.macierz[i][j] = ko.dodawnie(ilo.macierz[i][j], tablica.get(l));;
						} else
							ilo.macierz[i][j]=tablica.get(0);
                        }tablica.clear();
                }
            }
           for(int i=0; i<w; i++){
               for(int j=0; j<k; j++){ ko.jakaliczba(ilo.macierz[i][j]);}
               System.out.println("");
           }
       }
        else {System.out.println("Tych macierzy nie mozesz pomnozyc");
        }
    }
}
